<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>数据类型转换</title>
    <script>
      /*
        在程序运行时,对数据进行处理,类型是至关重要的,合理的类型才能进行相应的运算,
        接收到的数据类型不一定是符合条件的,所以需要进行数据类型转换后再进行运算
        通俗来说，就是把一种数据类型的变量转换成另外一种数据类型

        分类:
        自动类型转换(隐式类型转换)        程序运行时,自动转换,无需程序员关心
        强制类型转换(显式类型转换)        程序员对数据类型进行转换操作
      */
      //自动类型转换
      console.log('100' - 1)

      //强制类型转换,此处需要把100手动转换成数字类型,才能进行正确的数学运算,否则是字符串拼接
      console.log('100' + 1) // 1001

      //如何转换?
      /*

        数字类型    ->   字符串
          1. + ''
          2. toString()
          3. String(数字)
        */
      let num = 99
      console.log(99 + '' + 1)
      console.log(num + '' + 1)
      console.log(num.toString() + 1)
      console.log(String(num) + 1)

      /*
        字符串类型  ->   数字类型
          1. parseInt('字符串')       转换成整数
             parseFloat('字符串')     转换成浮点数
             注意:
             传入的字符串可以是纯数字字符串或者以数字开头的任意字符串(非数字部分开始会自动全部忽略)

          2. 减0法

          3.Number('字符串')
        */
      console.log(parseInt('100abc111') + 1) // 101
      console.log(parseFloat('3.14') + 1) // 101
      console.log('100' - 0 + 1) // 101
      console.log(Number('3.14') + 1) // 101
    </script>
  </head>
  <body></body>
</html>
